package com.mvc;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import javax.servlet.Filter;
import javax.servlet.MultipartConfigElement;
import javax.servlet.ServletRegistration;

/**
 * @author lijingzhao
 * AbstractAnnotationConfigDispatcherServletInitializer会同时创建DispatcherServlet和ContextLoaderListener。
 * AbstractAnnotationConfigDispatcherServletInitializer是一个便利的
 * WebApplicationInitializer基础实现。
 * @date 2018/7/18 21:10
 */
public class MVCConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
	/**
	 * getRootConfigClasses()方法返回的带有@Configuration注解的类将会用来配
	 * 置ContextLoaderListener创建的应用上下文中的bean。
	 */
	@Override
	protected Class<?>[] getRootConfigClasses() {
		return new Class[]{WebConfig.class};
	}

	/**
	 * GetServlet-ConfigClasses()方法返回的带有@Configuration注解的类将会用来定
	 * 义DispatcherServlet应用上下文中的bean。
	 */
	@Override
	protected Class<?>[] getServletConfigClasses() {
		return new Class[]{WebConfig.class};
	}

	@Override
	protected String[] getServletMappings() {
		return new String[]{"/"};
	}


	/**
	 * 通过调用setLoadOnStartup()设置load-on-startup优先级， 通过setInitParameter()设置初始化参数， 通过
	 * 调用setMultipartConfig()配置Servlet 3.0对multipart的支持。
	 */
	@Override
	protected void customizeRegistration(ServletRegistration.Dynamic registration) {
		super.customizeRegistration(registration);
		registration.setLoadOnStartup(1);
//		registration.setMultipartConfig(new MultipartConfigElement());

	}

	@Override
	protected Filter[] getServletFilters() {
		return super.getServletFilters();
	}


}
